package ar.uba.fi.algo3.algoTank.Objetos;

import java.io.Serializable;

public class Ubicacion implements Serializable{

        /**
	 * 
	 */
	private static final long serialVersionUID = 45L;
	
		private Posicion posicion;
    	private float ancho;
    	private float alto;
    	
    	public Ubicacion(){
    		
    		posicion= new Posicion();
    		
    	}
    	
    	public Ubicacion(float valorAncho, float valorAlto){
    		
    		posicion= new Posicion();
    		ancho = valorAncho;
    		alto = valorAlto;
    		
    	}
    	
    	
    	public void setAncho( float valorAncho){
    		this.ancho = valorAncho;
    	}
    	
    	public void setAlto ( float valorAlto){
    		this.alto = valorAlto;
    	}
    	
    	public float getAncho(){
    		return this.ancho;		
    	}
    	
    	public float getAlto(){
    		return this.alto;
    	}
    	
        public void setPosicion(Posicion unaPosicion){
                this.posicion = unaPosicion;
        }
       
          
        public Posicion getPosicion(){
                return this.posicion;
        }
   
       
        public float maxPosAderecha(){
        	return (this.posicion.getX()+(ancho/2));
        }
        
        public float minPosAizquierda(){
        	
        	return (this.getPosicion().getX()-(ancho/2));
        }
        
        public float maxPosArriba(){
        	
        	return (posicion.getY()+(alto/2));
        	
        }
        
        public float minPosAbajo(){
        	
        	return (this.getPosicion().getY()-(alto/2));
        }
        
        public boolean comparteUbicacion(Ubicacion unaUbicacion){
            
        	//Si hay coalicion devuelve true       	
        	
        	if( (this.minPosAizquierda() >= unaUbicacion.maxPosAderecha()) ||
        		  			
            	(this.maxPosAderecha() <= unaUbicacion.minPosAizquierda()) ||
            		  
                (this.maxPosArriba() <= unaUbicacion.minPosAbajo() ) ||
            			   
                (this.minPosAbajo() >= unaUbicacion.maxPosArriba() ))
            			
        			return false;
            				
            else
            	return true;     				
        	  
        }
       
}

